package day_6_29;

public class Main3 {
    /**
     * 82. 删除排序链表中的重复元素 II
     * https://leetcode.cn/problems/remove-duplicates-from-sorted-list-ii/description/
     */
    public class ListNode {
        int val;
        ListNode next;
        ListNode() {}
        ListNode(int val) { this.val = val; }
        ListNode(int val, ListNode next) { this.val = val; this.next = next; }
    }
    public ListNode deleteDuplicates(ListNode head) {
        ListNode newHead = new ListNode(-1,head);
        ListNode cur = newHead;

        while(cur.next != null && cur.next.next != null) {
            int val = cur.next.val;
            if(cur.next.next.val == val) {
                // 出现相同的数值，那么进行将这个 val 的值对应的都进行删除
                while(cur.next != null && cur.next.val == val) {
                    // 直接越过这个等于 val 的链表
                    cur.next = cur.next.next;
                }
            }else {
                // 不重复的话，cur 到达下一个位置
                cur = cur.next;
            }
        }

        return newHead.next;
    }
}
